package com.ruoyi.gis.geoserver.domain;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;

import java.io.Serializable;
import java.util.List;

/**
 * {
 * 	"GeoServerLayer": {
 * 		"expireClients": 0,
 * 		"gutter": 0,
 * 		"expireCache": 0,
 * 		"parameterFilters": [{
 * 			"defaultValue": "",
 * 			"key": "STYLES"
 *                }],
 * 		"metaWidthHeight": [4, 4],
 * 		"cacheWarningSkips": ["Default", "Nearest", "FailedNearest"],
 * 		"name": "testWs:youcai",
 * 		"inMemoryCached": true,
 * 		"mimeFormats": ["application/vnd.mapbox-vector-tile", "image/png", "image/jpeg"],
 * 		"id": "LayerInfoImpl--7e979745:18702a3320c:-7ff1",
 * 		"gridSubsets": [{
 * 			"gridSetName": "EPSG:4326"
 *        }, {
 * 			"gridSetName": "EPSG:900913"
 *        }],
 * 		"enabled": true* 	}
 * }
 *
 * https://blog.csdn.net/qq_20161461/article/details/111664807
 */
@JacksonXmlRootElement(localName = "layerGroup")
public class GeoServerLayerGroup implements Serializable {
    @JacksonXmlProperty(localName = "name")
    private String name;
    @JacksonXmlProperty(localName = "mode")
    private String mode;
    @JacksonXmlProperty(localName = "title")
    private String title;
    @JacksonXmlProperty(localName = "internationalTitle")
    private String internationalTitle;
    @JacksonXmlProperty(localName = "internationalAbstract")
    private String internationalAbstract;
    @JacksonXmlProperty(localName = "dateCreated")
    private String dateCreated;
    @JacksonXmlElementWrapper(localName = "publishables")
    @JacksonXmlProperty(localName = "published")
    private List<GroupLayer> publishables;
    @JacksonXmlProperty(localName = "bounds")
    private GroupBounds bounds;


    private String sourceUrl;


    ///////////////////////////////////////


    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getSourceUrl() {
        return sourceUrl;
    }

    public void setSourceUrl(String sourceUrl) {
        this.sourceUrl = sourceUrl;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMode() {
        return mode;
    }

    public void setMode(String mode) {
        this.mode = mode;
    }

    public String getInternationalTitle() {
        return internationalTitle;
    }

    public void setInternationalTitle(String internationalTitle) {
        this.internationalTitle = internationalTitle;
    }

    public String getInternationalAbstract() {
        return internationalAbstract;
    }

    public void setInternationalAbstract(String internationalAbstract) {
        this.internationalAbstract = internationalAbstract;
    }

    public String getDateCreated() {
        return dateCreated;
    }

    public void setDateCreated(String dateCreated) {
        this.dateCreated = dateCreated;
    }

    public List<GroupLayer> getPublishables() {
        return publishables;
    }

    public void setPublishables(List<GroupLayer> publishables) {
        this.publishables = publishables;
    }

    public GroupBounds getBounds() {
        return bounds;
    }

    public void setBounds(GroupBounds bounds) {
        this.bounds = bounds;
    }
}
